#include<iostream>
#include<time.h>
using namespace std;

// 声明: (time_t是long类型的别名)
// time_t time(time_t *tloc);
// 有两种调用方法：
// time_t now=time(0);    		// 将空地址传递给time()函数，并将time()返回值赋给变量now。
// 或
// time_t now; time(&now);   // 将变量now的地址作为参数传递给time()函数。

// 函数声明：
// struct tm *localtime(const time_t *timep);
// struct tm *localtime_r(const time_t *timep, struct tm *result);  // 线程安全

// struct tm
// {
//   int tm_year;	// 年份：其值等于实际年份减去1900
//   int tm_mon;	// 月份：取值区间为[0,11]，其中0代表一月，11代表12月
//   int tm_mday;	// 日期：一个月中的日期，取值区间为[1,31]
//   int tm_hour; 	// 时：取值区间为[0,23]
//   int tm_min;	// 分：取值区间为[0,59]
//   int tm_sec;     	// 秒：取值区间为[0,59]
//   int tm_wday;	// 星期：取值区间为[0,6]，其中0代表星期天，6代表星期六
//   int tm_yday;	// 从每年的1月1日开始算起的天数：取值区间为[0,365] 
//   int tm_isdst;   // 夏令时标识符，该字段意义不大
// };

int main()
{
	time_t now = time(NULL);  // 获取当期时间（秒数）

	cout << "now = " << now << endl;
	
	tm tm_now;
	localtime_r(&now, &tm_now); // 把当前时间转化为tm结构体

	// 根据tm结构体拼接成中国人习惯的字符串格式
	// cout << "tm_now.tm_year=" << tm_now.tm_year << endl;
	string stime = to_string(tm_now.tm_year +1900)+"-"
		+ to_string(tm_now.tm_mon+1)+"-"
		+ to_string(tm_now.tm_mday)+" "
		+ to_string(tm_now.tm_hour)+":"
		+ to_string(tm_now.tm_min)+":"
		+ to_string(tm_now.tm_sec);

	cout << "stime=" << stime << endl;


	return 0;
}
